package com.qfedu.hotelssm.dao;

import com.qfedu.hotelssm.dto.DepSexSalaryDto;
import com.qfedu.hotelssm.dto.SalaryDto;
import com.qfedu.hotelssm.dto.SumSalaryDto;
import com.qfedu.hotelssm.entity.Salary;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface SalaryDao {

    /**
     * 新增工资表数据
     * @param salary 员工工资信息
     * @return 受影响行数
     */
    int save(Salary salary);

    /**
     * 删除数据
     * @param id 工资表ID
     * @return 受影响行数
     */
    int delete(int id);

    /**
     * 修改
     * @param salary 对象
     * @return 受影响行数
     */
    int update(Salary salary);

    /**
     * 查询总条数
     * @param name 模糊查询员工名
     * @return 总数据条数
     */
    long selectCount(String name);

    /**
     * 分页查询
     * @param name 模糊查询名
     * @param start 开始条数
     * @param size 每页数据条数
     * @return 数据集合
     */
    List<Salary> selectPage(@Param("name") String name, @Param("start") int start, @Param("size") int size);
    //批量删除
    int deleteByIds(int[] ids);
    //查询所有  导出
    List<Salary> all();
    //批量增加  导入
    int saveBatch(List<Salary> list);
    //查询员工ID 名称 部门
    List<SalaryDto> allDto();
    //部门分组 查询总工资
    List<SumSalaryDto> sumSalary();
    //显示各部门内男女工资
    List<DepSexSalaryDto> sumSexSalary();
}
